Safety of Live Transactions in Transactional Memory: TMS is Necessary and Sufficient
نویسندگان
چکیده
The main challenge of stating the correctness of transactional memory (TM) systems is the need to provide guarantees on the system state observed by live transactions, i.e., those that have not yet committed or aborted. A TM correctness condition should not be too restrictive, to allow flexibility in implementation, yet strong enough to disallow undesirable TM behavior, which can lead to run-time errors in live transactions. The latter feature is formalized by observational refinement between TM implementations, stating that properties of a program using a concrete TM implementation can be established by analyzing its behavior with an abstract TM, serving as a specification of the concrete one. We show that a variant of transactional memory specification (TMS) is equivalent to observational refinement for the common programming model in which local variables are rolled back upon a transaction abort and, hence, is the weakest consistency condition for this case. This is challenging due to the nontrivial formulation of TMS, which allows different aborted and live transactions to have different views on the system state. Our proof reveals some natural, but subtle, assumptions on the TM required for the equivalence result. This is a submission to the regular track. It can be considered for the best student paper award: Sandeep Hans is a full-time student. ∗Technion Israel Institute of Technology, Israel, {hagit,sandeep}@cs.technion.ac.il †IMDEA Software Institute, Spain, [email protected] ‡Tel Aviv University, Israel, [email protected]
منابع مشابه
Toward a Theory of Input Acceptance for Transactional Memories
Transactional memory (TM) systems receive as an input a stream of events also known as a workload, reschedule it with respect to several constraints, and output a consistent history. In multicore architectures, the transactional code executed by a processor is a stream of events whose interruption would waste processor cycles. In this paper, we formalize the notion of TM workload into classes o...
متن کاملLast-use Opacity: A Strong Safety Property for Transactional Memory with Early Release Support
Transaction Memory (TM) is a concurrency control abstraction that allows the pro-grammer to specify blocks of code to be executed atomically as transactions. However,since transactional code can contain just about any operation attention must be paidto the state of shared variables at any given time. E.g., contrary to a database trans-action, if a TM transaction reads a stal...
متن کاملProgressive Transactional Memory in Time and Space
Transactional memory (TM) allows concurrent processes to organize sequences of operations on shared data items into atomic transactions. A transaction may commit, in which case it appears to have executed sequentially or it may abort, in which case no data item is updated. The TM programming paradigm emerged as an alternative to conventional fine-grained locking techniques, offering ease of pro...
متن کاملOptimizing the Concurrent Execution of Locks and Transactions
Transactional memory (TM) is a promising alternative to mutual exclusion. In spite of this, it may be unrealistic for TM programs to be devoid of locks due to their abundant use in legacy software systems. Consequently, for TMs to be practical they may need to manage the interaction of transactions and locks when they access the same shared-memory. This paper presents two algorithms, one coarse...
متن کاملCost of Concurrency in Hybrid Transactional Memory
State-of-the-art software transactional memory (STM) implementations achieve good performance by carefully avoiding the overhead of incremental validation (i.e., re-reading previously read data items to avoid inconsistency) while still providing progressiveness (allowing transactional aborts only due to data conflicts). Hardware transactional memory (HTM) implementations promise even better per...
متن کامل